import com.lijinjiang.beautyeye.BeautyEyeLNFHelper;

import javax.swing.*;
import java.awt.*;

/**
 * @ClassName Demo01
 * @Description TODO
 * @Author Li
 * @Date 2022/9/15 11:58
 * @ModifyDate 2022/9/15 11:58
 * @Version 1.0
 */
public class Demo01 {
    public static void main(String[] args) {
        try {
            BeautyEyeLNFHelper.frameBorderStyle = BeautyEyeLNFHelper.FrameBorderStyle.generalNoTranslucencyShadow;
            BeautyEyeLNFHelper.launchBeautyEyeLNF();
        } catch (Exception e) {
            e.printStackTrace();
        }
        JFrame frame = new JFrame("Demo01");
        frame.setTitle("Demo01");
        frame.setSize(400, 480);

        JPanel panel = new JPanel();// 中间组件
        panel.setLayout(new GridLayout(3, 3, 30, 30));

        JButton btn01 = new JButton("普通按钮");
        JButton btn02 = new JButton("红色按钮");
        JButton btn03 = new JButton("禁用按钮");
        JButton btn04 = new JButton("红色字体");
        JButton btn05 = new JButton();
        JButton btn06 = new JButton("边框");
        JButton btn07 = new JButton("填充");
        JButton btn08 = new JButton("焦点");
        JButton btn09 = new JButton("按钮",
                new ImageIcon(new ImageIcon("P23_JButton/images/pic01.png").getImage()
                        .getScaledInstance(100, 100, Image.SCALE_DEFAULT)));

        // 1.普通按钮
        panel.add(btn01);

        // 2.带颜色的按钮
        btn02.setOpaque(true);
        btn02.setBackground(Color.RED);
        panel.add(btn02);

        // 3.不可编辑按钮
        btn03.setEnabled(false);
        panel.add(btn03);

        // 4.设置按钮的 文本、字体 和 字体颜色
        // setText(String text)
        // setFont(Font font)
        // setForeground(Color fg)
        btn04.setText("红色宋体");
        btn04.setFont(new Font("宋体", Font.BOLD, 20));
        btn04.setForeground(Color.red);
        panel.add(btn04);

        // 5
        // setIcon(Icon defaultIcon) //注意了这是改的默认图标。三态中的默认，即鼠标未在其上的时候。
        // setPressedIcon(Icon pressedIcon) //按下时的图标。
        // setRolloverIcon(Icon rolloverIcon) //鼠标经过时的图标。
        btn05.setIcon(new ImageIcon(
                new ImageIcon("P23_JButton/images/pic01.png").getImage()
                        .getScaledInstance(100, 100, Image.SCALE_DEFAULT)));
        btn05.setPressedIcon(new ImageIcon(
                new ImageIcon("P23_JButton/images/pic02.png").getImage()
                        .getScaledInstance(100, 100, Image.SCALE_DEFAULT)));
        btn05.setRolloverIcon(new ImageIcon(
                new ImageIcon("P23_JButton/images/pic02.png").getImage()
                        .getScaledInstance(100, 100, Image.SCALE_DEFAULT)));
        panel.add(btn05);

        // 是否绘制边框（设置不绘制边框，再结合上面三个设置按钮状态图片的方法，可实现自定义按钮）
        // void setBorderPainted(boolean b);
        btn06.setBorderPainted(false);
        panel.add(btn06);

        // setContentAreaFilled(boolean b) //是否填充，如果你的自定义图片不是矩形或存在空白边距，可以设为 false
        // 使按钮看起来透明。
        btn07.setContentAreaFilled(true);
        panel.add(btn07);

        // setFocusPainted(boolean b) //是否绘制焦点（例如浅色虚线框或者加粗的边框表明按钮当前有焦点）。
        btn08.setFocusPainted(false);
        panel.add(btn08);

        btn09.setHorizontalTextPosition(SwingConstants.CENTER); // 水平方向文本在图片中心
        btn09.setVerticalTextPosition(SwingConstants.BOTTOM);// 垂直方向文本在图片下方
        panel.add(btn09);

        frame.add(panel);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }
}
